from django.db import models

from lib.orm import ModelMixin

class Goods(models.Model,ModelMixin):
  pic_path = models.CharField(max_length=32)
  name = models.CharField(max_length=16)
  price = models.CharField(max_length=16)
  order = models.CharField(max_length=16)
  # profit = models.FloatField(default=0.1)  #收益
  profit_per = models.FloatField(default=0.2)  #收益要转换成百分比
  profit_time = models.IntegerField(default=3)  # 收益周期 天
  goods_num = models.CharField(max_length=16)
  # state = models.IntegerField() #0生产中 1预约 2已预约待匹配 3匹配中 4敬请期待
  start_time = models.CharField(max_length=16)  #开始时间
  end_time = models.CharField(max_length=16)  #结束时间
  pet_price = models.IntegerField(default=20)  # #消耗灵石

  # def to_dict(self):
  #   return {
  #     'id':self.id,
  #     'pic_path':self.pic_path,
  #     'name':self.name,
  #     'price':self.price,
  #     "order":self.order,
  #     "goods_num":self.goods_num,
  #     'state':self.state,
  #     'order_time':self.order_time.strftime("%Y-%m-%d %H:%M:%S"),
  #     'buy_time':self.buy_time.strftime("%Y-%m-%d %H:%M:%S"),
  #     'count': self.count,
  #   }

class GoodsUserRelation(models.Model):
  """商品-用户 多对多关系表 宠物分配"""
  goods_id=models.IntegerField()
  user_id=models.IntegerField()
  state=models.IntegerField(default=1) #5预约失败
  # 宠物是否可以出售，1、预约 2、预约成功待匹配 7表示可以出售，在出售中 8手动分配的宠物 9已出售，交易完成
  ##0生产中 1预约 2已预约待匹配 3匹配中 4敬请期待 5预约失败 6匹配成功收益中
  has_pet=models.IntegerField(default=0)  #0 未持有 1持有宠物
  price = models.FloatField(default=0.0)  # 价格
  get_time = models.DateTimeField(auto_now=True)  #宠物获取时间,每次更改该表时都会变动

  def to_dict(self):
      return {
        'id':self.id,
        'goods_id':self.goods_id,
        'user_id':self.user_id,
        'state':self.state,
        "has_pet":self.has_pet,
        'price':self.price,
        'get_time':self.get_time.strftime("%Y-%m-%d %H:%M:%S"),
      }


class GoodsUserPipei(models.Model):
  """商品-用户-用户 多对多关系表 交易记录表"""
  goods_id=models.IntegerField()  #宠物ID
  user_id_gou = models.IntegerField() #买家ID
  user_id_chu=models.IntegerField() #卖家ID
  price=models.FloatField(default=0.0) #价格
  # count=models.IntegerField() #商品数量，代表几个宠物可以抢
  get_time = models.DateTimeField(auto_now_add=True)  #付款时间
  pay_jietu = models.CharField(max_length=256, verbose_name='付款凭证',
                            default='')
  state = models.IntegerField()  # 1表示购买成功，宠物归买家 2表示购买失败，宠物归卖家
  order_state = models.IntegerField()  #订单状态 1表示待支付 2表示购已支付